var roleManage = {};


/**
 * 获取职位权限列表
 * @param row
 */
var roleId = "";



roleManage.updateResource = function (row) {
    // 模态框显示
    $("#myModaltree").modal('show');
    // var roleId = row.id;

    // 假设查询角色1   的对应资源
    roleId = 1;

    $.ajax({
            url:"/GetRoleListByIdServlet",
            type:"post",
            data:{
                "roleId":roleId
            },
            dataType:'json',
            success:function (result) {

                //  初始化 权限树
                $('#tree1').treeview({
                    levels: 1,
                    expandIcon: 'glyphicon glyphicon-chevron-right',
                    collapseIcon: 'glyphicon glyphicon-chevron-down',
                    selectedBackColor: false,
                    selectedColor: '#337AB7',
                    showCheckbox: true,
                    multiSelect: true,

                    data:result.data,// 得到List<TreeMenu> treeMenuList
                    onNodeChecked: function (event, node) { //设置选中节点
                        var selectNodes = getChildNodeIdArr(node); //获取所有子节点
                        if (selectNodes) { //子节点不为空，则选中所有子节点
                            $('#tree1').treeview('checkNode', [selectNodes, {
                                silent: true
                            }]);
                        }
                        $("#tree1").treeview("getNode", node.parentId);
                        setParentNodeCheck(node);
                    },
                    onNodeUnchecked: function (event, node) {//取消选中节点
                        var selectNodes = getChildNodeIdArr(node); //获取所有子节点
                        if (selectNodes) { //子节点不为空，则取消选中所有子节点
                            $('#tree1').treeview('uncheckNode', [selectNodes, {
                                silent: true
                            }]);
                        }
                    }
                })
            }
        }
    )
}



/*
 * 设置父节点
 * @param {Object} node
 */
function setParentNodeCheck(node) {
    var parentNode = $("#tree1").treeview("getNode", node.parentId);
    if (parentNode.nodes) {
        var checkedCount = 0;
        for (x in parentNode.nodes) {
            if (parentNode.nodes[x].state.checked) {
                checkedCount ++;
            } else {
                break;
            }
        }
        if (checkedCount === parentNode.nodes.length) {
            $("#tree1").treeview("checkNode", parentNode.nodeId);
            setParentNodeCheck(parentNode);
        }
    }
}

/*
 * @author
 * @date 2019/11/22
 * 获取所有的字节点
**/
function getChildNodeIdArr(node) {
    var ts = [];
    if (node.nodes) {
        for (x in node.nodes) {
            ts.push(node.nodes[x].nodeId);
            if (node.nodes[x].nodes) {
                var getNodeDieDai = getChildNodeIdArr(node.nodes[x]);
                for (j in getNodeDieDai) {
                    ts.push(getNodeDieDai[j]);
                }
            }
        }
    } else {
        ts.push(node.nodeId);
    }
    return ts;
}

/**
 * 点击确定按钮
 * 获取当前角色 拥有的权限树
 */
roleManage.setTreeList = function() {

    //获取所有已经勾选的节点
    var getNodes = $("#tree1").treeview('getChecked');

    var getNodeList = new Array();

    //遍历得到已经勾选的id
    for (var i = 0; i < getNodes.length; i++) {
        getNodeList[i] = getNodes[i].nodeid;
    }
    alert('角色：'+roleId+'拥有权限:'+JSON.stringify(getNodes));


    // 调用确认弹框 ajax   修改角色对应的权限将 数组转化为字符串
    // 提交到后台服务器


    //提示：1.首先将 数据转换以,分割的字符串，后台解析
    //      2. 修改业务 resource_role
    //          首先删除所有当前角色的所有资源
    //          重新设置对应角色资源

}